package com.tedu.api.date.io;

import java.io.*;
import java.util.Scanner;

/**
 * 练习:做一个笔记本程序
 * 需求:程序开始之后,要求用户控制台下输入文件名,假设:a.txt
 *      然后针对文件进行读写操作 用户一行行输入文本,保存在a.txt文件中
 *      用户可以一直输入文件,直到用户输入"退出或者exit"程序结束
 *      保存a.txt生成在 aPI项目下
 *
 */
public class Note {
    //主方法:直接写文件 相对
    public static void main(String[]args) throws FileNotFoundException, UnsupportedEncodingException {
        //1.创建扫描器---控制台---用户输入:文件名
        //扫描器类---功能:控制卡住等待用户输入:文本
        Scanner input=new Scanner(System.in);
        System.out.println("请输入文件名:");
        //nextlline() 获取从控制台输入一行文本内容
        String text= input.nextLine();
        System.out.println(text);
        //2.控制台输入文件名---通过输入流---写出---一行一行[高级流]  ./API/a.txt
        FileOutputStream fos= new FileOutputStream(text);
       //高级流---转换流:指定编码集--缓冲流:高效---字符输出流
        OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF8");
        BufferedWriter bw= new BufferedWriter(osw);
        PrintWriter pw=new PrintWriter(String.valueOf(bw));
        //3.控制台输入,文本内容--对每行文本内容写出
        System.out.println("请开始输入内容[exit/退出:]");
        //3.1用户--一直输入:直到用户输入"exit/退出"结束程序
        String line=null;
        while(true){
            line=input.nextLine();
            //控制台输入文本---判断,如果输入文本:exit或者退出[退出]
            if(line.equals("退出")||line.equals("exit")) {
                break;
            }
                //写出line文本
            pw.println(line);
            }
            System.out.println("拜拜~~,请查看API项目目录下");
        pw.close();
        //关闭高级流---缓冲字符流:[缓冲区]关闭流--调用flush
        //针对传输:文本

        }
    }

